#ifndef PATROL_STATE_H_GGJ
#define PATROL_STATE_H_GGJ

#include "State.h"
#include "../Characters/Character.h"

#define PATROL CPatrolState::Instance()

class CPatrolState : public CState<CCharacter>
{
public:
	~CPatrolState();
	static CPatrolState* Instance();

	void SetRoute(const std::vector<sf::Vector2f>& points);
private:
	CPatrolState();

	virtual void OnEnter(CCharacter* entity);
	virtual void OnExit(CCharacter* entity);
	virtual void OnExecute(CCharacter* entity, float dt);

	std::vector<sf::Vector2f> m_tRoute;
	std::vector<sf::Vector2f>::iterator m_tCurrentGoal;
};

#endif // PATROL_STATE_H_GGJ